-- @Author: 作者QQ381990860
-- @Date:   2021-11-05 10:34:34
-- @Last Modified by:   作者QQ381990860
-- @Last Modified time: 2022-07-23 06:58:51

local 场景类_符石合成 = class(窗口逻辑)
local floor = math.floor
local insert = table.insert
local tos = 引擎.取金钱颜色
local tp,zts,zts1
local hcs = {"所需银两","现有银两","所需体力","现有体力"}


function 场景类_符石合成:初始化(根)
	self.ID = 34
	self.x = 226+(全局游戏宽度-800)/2
	self.y = 110
	self.xx = 0
	self.yy = 0
	self.注释 = "符石类合成"
	self.可视 = false
	self.鼠标 = false
	self.焦点 = false
	self.可移动 = true
	local 资源 = 根.资源
	local 按钮 = 根._按钮
	local 自适应 = 根._自适应
	self.资源组 = {
		[1] = 自适应.创建(0,1,300,405,3,9),
		[2] = 按钮.创建(自适应.创建(18,4,16,16,4,3),0,0,4,true,true),
		[3] = 按钮.创建(自适应.创建(11,4,72,20,1,3),0,0,4,true,true,"  合成"),
		[5] = 自适应.创建(3,1,90,18,1,3)
	}
	local 格子 = 根._物品格子
	self.物品 = {}
	for i=1,20 do
		self.物品[i] = 格子(0,0,"合成")
	end
	self.材料 = {}
	for i=1,4 do
		self.材料[i] = 格子(0,0,"合成材料")
	end
	for n=2,3 do
		self.资源组[n]:绑定窗口_(34)
	end
	self.材料数量 = 0
	self.选中 =0
	tp = 根
	zts = tp.字体表.普通字体
	zts1 = tp.字体表.描边字体
	self.选中材料= {}
	self.窗口时间 = 0
end

function 场景类_符石合成:刷新(数据)
	self.数据=数据
	for i=1,20 do
	self.物品[i]:置物品(数据[i])
	end
	for i=1,4 do
	self.材料[i]:置物品(nil)
	end
end

function 场景类_符石合成:打开(数据)
	if self.可视 then
		self.可视 = false
		self.选中 =0
	   self.材料数量 = 0
	   self.选中材料= {}
	else
	if  self.x > 全局游戏宽度 then
	self.x = 226+(全局游戏宽度-800)/2
		end
		insert(tp.窗口_,self)
		for i=1,20 do
			self.物品[i]:置物品(数据[i])
		end
		for i=1,4 do
		self.材料[i]:置物品(nil)
	   end
		self.数据=数据
		tp.运行时间 = tp.运行时间 + 1
	    self.窗口时间 = tp.运行时间
	    self.可视 = true
	end
end

function 场景类_符石合成:显示(dt,x,y)
	self.焦点 = false
	self.资源组[2]:更新(x,y)
	self.资源组[3]:更新(x,y,self.材料数量 >= 4)
	if self.资源组[2]:事件判断() then
		self:打开()
		return false
	elseif self.资源组[3]:事件判断() then
     客户端:发送数据(1,185,13,self.选中材料[1].."*-*"..self.选中材料[2].."*-*"..self.选中材料[3].."*-*"..self.选中材料[4])
     for i=1,4 do
		self.材料[i]:置物品(nil)
	   end
	end
	self.资源组[1]:显示(self.x,self.y)
	self.资源组[2]:显示(self.x+self.资源组[1].宽度-20,self.y+3)
	tp.窗口标题背景_:显示(self.x+self.资源组[1].宽度/2-73,self.y)
	zts1:显示(self.x+self.资源组[1].宽度/2-22,self.y+1,"合  成")

	tp.物品格子背景_:显示(self.x+20,self.y+181)

	for h=1,2 do
		for l=1,2 do
		tp.单物品格子:显示(self.x+11+l*56-56,self.y+28+h*56-56)
		end
	end

	zts:置颜色(0xFFFFFFFF)
	for i=0,3 do
       self.资源组[5]:显示(self.x+200,self.y+35+i*25)
       zts:显示(self.x+132,self.y+37+i*25,hcs[i+1])
    end

	local is = 0
	for h=1,4 do
		for l=1,5 do
			is = is + 1
			self.物品[is]:置坐标(self.x+l * 51 - 30, self.y + h * 50 +130)
			self.物品[is]:显示(dt,x,y,self.鼠标,"符石")
			if self.物品[is].物品 ~= nil and self.物品[is].焦点 then
				tp.提示:道具行囊(x,y,self.物品[is].物品)
				if self.物品[is].事件 and self.鼠标 then
               		if self.物品[is].物品.类型 == "符石" or self.物品[is].物品.名称 == "符石卷轴" then
					  if self.材料数量 < 4 then
							for i=1,4 do
								if self.材料[i].物品 == nil then
									self.选中 =is
				               		self.材料[i]:置物品(self.物品[is].物品)
									self.物品[is]:置物品(nil)
									self.材料数量 = self.材料数量 + 1
									self.选中材料[i]=is
									break
								end
							end
					   else
		                    tp.提示:写入("#Y/放入的物品太多了，不允许再放入了！")
		               end
		           else
		              tp.提示:写入("#Y/只有符石和符石卷轴才能合成！")
		           end
				end
			end
		end
	end
	is = 0
	for h=1,2 do
		for l=1,2 do
			is = is + 1
			self.材料[is]:置坐标(self.x+l * 56 - 43,self.y +h * 55 -28)
			self.材料[is]:显示(dt,x,y,self.鼠标)
			if self.材料[is].物品 ~= nil and self.材料[is].焦点 then
				tp.提示:道具行囊(x,y,self.材料[is].物品)
				if self.材料[is].事件 and self.鼠标 then
					self.材料数量 = self.材料数量 - 1
                    self.物品[self.选中]:置物品(self.数据[self.选中])
					self.材料[is]:置物品(nil)
				end
			end
		end
	end

	self.资源组[3]:显示(self.x+175,self.y+148,true,1,nil,self.材料数量 < 4,3)

	zts:置颜色(引擎.取金钱颜色(self.数据.银子))
    zts:显示(self.x+205,self.y+62,self.数据.银子)
    zts:置颜色(0xFFFFFF00)
    zts:显示(self.x+205,self.y+113,self.数据.体力)

	if self.材料数量 >= 4 then
	zts:置颜色(引擎.取金钱颜色(500000))
	zts:显示(self.x + 205,self.y + 38,500000)
	zts:置颜色(0xFFFFFF00)
	zts:显示(self.x + 205,self.y + 88,30)
	zts:置颜色(0xFFFFFFFF)
	end
end



return 场景类_符石合成